package com.study.d9_io_exer;

import org.apache.commons.io.FileUtils;

import java.io.File;

public class CopyDirectory {
    public static void main(String[] args) {
        //目标：复制文件夹
        //源文件夹：C:\Users\51230\Desktop\前端Xmind笔记
        //目标文件夹：D:\software
        try {
            copyDirectory(new File("C:\\Users\\51230\\Desktop\\前端Xmind笔记"),new File("D:\\software"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void copyDirectory(File source,File desti) throws Exception {
        if(source==null||desti==null||!source.exists()||!source.exists()||source.isFile()||desti.isFile()){
            return;
        }
        //开始拷贝之前，先在目标位置创建新文件夹名和源文件名称一样
        File destNewDir = new File(desti,source.getName());
        destNewDir.mkdirs();//创建这个目录

        //3、提取原始目录的一级文件夹
        File[] files = source.listFiles();

        //4、判断这个目录能否拿到一级文件对象，一级是否存在一级文件对象
        if(files==null||files.length==0)return;

        for (File file : files) {
            if(file.isFile()){
                FileUtils.copyFile(file,new File(destNewDir,file.getName()));
            }else{
                copyDirectory(file,destNewDir);
            }
        }
    }
}
